1. Field of Invention
This disclosure generally relates to network management and more relating to content distribution network that communicate audiovisual media, such as digital files representing movies, television programs, or other audiovisual content.
2. Description of Related Art
Digitally encoded files representing movies, television programs, or other audiovisual content can be communicated from servers storing the content, in a content distribution network (CDN), to clients involved in displaying the content using streaming communication techniques. Streaming delivery often uses progressive file download techniques in which files or portions of files are communicated using hypertext transfer protocol (HTTP). Other techniques include streaming protocols such as RTP, RTSP, RTMP, RTCP. These or any other streaming technologies may be used within the scope of this invention.
Streaming delivery of media files using HTTP for progressive download from CDN servers is subject to many kinds of service degradations and interruptions. For example, implementations that use transport control protocol (TCP) as a transport layer protocol may implement a TCP window ramp-up approach, in which the amount of data transmitted after a packet loss is initially small, and then gradually increases. Although this technique helps ensure reliable data delivery, a consequence is that less data is delivered, temporarily resulting in a poor user experience. Packet loss such as this can be worked around by implementing various techniques. One such technique is opening multiple connections to a single CDN. This approach can be used to minimize throughput degradation which may arise after packet loss. Opening multiple connections is also a possible way to increase share of traffic through a network component that uses round-robin scheduling among many simultaneous connections.
Another technique that can be implemented to workaround service degradation and interruptions is opening connections to multiple CDN servers, to compare performance between competing servers, in order to choose the best. The competing servers may be owned and operated by different CDN providers, or may comprise replicas or related servers within the same CDN.
Yet another technique to workaround service degradation and interruption is opening connections to multiple CDN servers and pulling packets of data through each connection in parallel. In this approach, the best connection will effectively deliver the most data, while compromised connections deliver less data, but do not impede overall throughput. If the congestion factors change, the balance between the parallel connections will shift without the client having to make any adjustment.
Unfortunately, many of these techniques impose unnecessary load upon the CDN servers, which makes them less able to serve other clients. Some of the techniques may result in reducing overall throughput for multiple clients, even though one client implementing the techniques may individually experience better performance.
As the foregoing illustrates, what is needed in the art is a technique for communicating with CDN servers without imposing unnecessary load on the CDN servers and without changing the communication protocols.